module.exports = class IndexController extends colpu.Controller {
  /**
   * @api {get} /api/config 获取全局配置
   * @apiDescription 获取全局配置
   * @apiGroup  全局配置接口
   * @apiVersion 1.0.0
   *
   * @apiSuccess {Number} status 状态码
   * @apiSuccess {String} message 消息
   * @apiSuccess {Object} data 返回结果
   * @apiSuccess {Boolen} isDecrypt 是否需要解密
   * @apiSuccessExample {json} Success-Response:
   * HTTP/1.1 200 OK
      {
        "data": {
          appname,
          ...
        },
        "status": 0,
        "message": "ok"
      }
  */
  async getConfig(ctx) {
    const { config } = ctx;
    const api = config.api;
    const { store, version, encrypt = "true" } = ctx.query;
    let condition = ["id<=8"];
    const map = {};
    if (version >= "1.0.5") {
      condition = ["id<=7"];
      const list = await this.service.product.list(["id IN(8,9)"], version);
      list.forEach((item) => {
        map[item.type] = item;
      });
      map.mantra = await this.service.mantra.getMantra({ type: "all" });
    }
    // 华为不显示烧香
    if (/huawei/gi.test(store)) {
      condition.push("id!=3");
    }
    const products = await this.service.product.list(condition, version);

    const prefix = `${api.host}${api.prefix}`;
    const v1 = `${api.host}${api.v1}`;
    const { domain, cdn } = config;

    const json = {
      appname: "佛印",
      cacheTime: 3,
      blendMode: false, // 显示灰度
      imageCDN: cdn,
      privacy: `${domain}privacy.html`,
      agreement: `${domain}agreement.html`,
      appraise: "https://app.xiaomi.com/details?id=com.foindia.colpu", // 给好评地址，连接到应用市场评论
      rankUrl: "https://activity.nadu8.com/2023/rank?hasAppBar=false", // 排行页面
      // rankUrl: `${api.host.replace('8086','5173')}/2023/rank?hasAppBar=false`, // 排行本地测试页面页面
      email: "ycg520520@qq.com",
      desc: "佛印是一款以木鱼、佛珠、日签为一体的功能产品，也是为您精心打造的静心、静想、静念的解压神器，愿每天都元气十足。",
      products,
      ...map,
      api: {
        config: `${v1}config`,
        update: `${v1}update`,
        musicList: `${v1}music/list`,
        // 用户相关
        userThirdAuth: `${v1}user/thirdauth`,
        user_third_auth_bind: `${v1}user/third_auth_bind`,
        user_third_unbind: `${v1}user/third_unbind`,
        userSet: `${v1}user/userset`,
        userVipInfo: `${v1}user/vipinfo`,
        getUserInfo: `${v1}user/userinfo`,
        register: `${v1}user/register`,
        user_check: `${v1}user/check`,
        login: `${v1}user/login`,
        logout: `${v1}user/logout`,
        apple_auth: `${prefix}apple_auth`,
        apple_auth_callback: `${prefix}apple_auth_callback`,
        sendemail: `${v1}sendemail`,
        check_email_code: `${v1}check_email_code`,
        user_update: `${v1}user_update`,
        user_background: `${v1}product/user/background`,
        user_background_list: `${v1}product/user/background/list`,

        appPay: `${v1}apppay`,
        share_welfare: `${v1}share_welfare`,
        payProduct: `${v1}pay/product`,
        pay_apple_verify: `${v1}pay/apple_verify`,
        meritCount: `${v1}merit/count`,
        meritSave: `${v1}merit/save`,
        meritDonate: `${v1}merit/donate`,
        meritList: `${v1}merit/list`,
        meritProvince: `${v1}merit/province`,
        daily: `${v1}news/daily`,
        recommend: `${v1}news/recommend`,
        merit_today_log: `${v1}merit/today_log`,
        merit_today_all_log: `${v1}merit/today_all_log`,
        merit_total_log_type: `${v1}merit/total_log_type`,
        merit_donate_log: `${v1}merit/donate_log`,
        alioss_sts: `${prefix}alioss_sts`,
        share_list: `${v1}share/list`,
        share_exchange_code: `${v1}share/exchange_code`,
        share_create_code: `${v1}share/create_code`,
        ip: `${v1}ips`,
        mantra: `${v1}mantra`,
        sign: `${v1}sign`, // 签到
      },
      adverts: [
        {
          id: 2,
          src: `${cdn}temp/ad2.png`,
          url: "",
        },
      ],
      shakekSwitch: false, // 震动开关
      playerSwitch: true, // 播放器开关
      pushSwitch: true, // 推送开关
      privacyLayer: {
        privacy: {
          title: "用户协议和隐私政策",
          content:
            "感谢您选择佛印App!\n    我们非常重视您的个人信息的隐私保护。为更好地保障您的权益，使用产品前，请您认真阅读$@0$、$@1$的全部内容。如您未满14周岁，请在监护人陪同下共同阅读我们的$@2$。\n    佛印将在下列需要的场景下申请并使用如下权限:\n设备权限: APP收集设备MAC地址、软件安装列表等用于保证您的账号安全;\n存储权限: 为缓存数据信息，我们需要获取您的设备存储权限;\n定位权限: 为获取区域信息，我们需要获取用户地理位置信息;\n推送服务: 自启动能力，将在一定频率通过系统发送广播唤醒本应用自启动或关联启动行为。",
          // "感谢您选择佛印APP！\n我们非常重视您的个人信息和隐私保护。为了更好的向你提供服务，我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。我们可能向系统申请一些权限：申请手机设备信息，包括IMEI、MAC、WIFI、存储权限等，用于数据统计和存储等功能，申请位置服务，用于获取地图的位置信息；以上权限都是系统公开权限请你务必审慎阅读充分理解$@0$和$@1$各条款。如果你同意，请点击下面按钮开始接受我们的服务。",
        },
        location: {
          title: "请允许使用位置权限",
          content:
            "为了提供更贴近您兴趣的本地信息及您所在地区的信息服务。我们需要获得您设备的所在地区信息（仅获取您所在地县级及以上行政区划的信息)。请认真阅读：$@1$，不授权该权限不影响您使用APP。",
        },
        replace: [
          { text: "《用户协议》", url: `${domain}agreement.html` },
          { text: "《隐私政策》", url: `${domain}privacy.html` },
          {
            text: "《儿童个人信息保护协议》",
            url: `${domain}children.html`,
          },
        ],
      },
      splash: [
        {
          url: `${cdn}splash/1.jpg`,
          title: "静",
          desc: "治愈式电子木鱼静心房，敲走烦恼。",
          color: [255, 215, 60],
        },
        {
          url: `${cdn}splash/2.jpg`,
          title: "静",
          desc: "治愈式电子木鱼静心房，敲走烦恼。",
          color: [255, 215, 60],
        },
        {
          url: `${cdn}splash/3.jpg`,
          title: "静",
          desc: "治愈式电子木鱼静心房，敲走烦恼。",
          color: [255, 215, 60],
        },
        // {
        //   url: `${cdn}splash/4.jpg`,
        //   title: "静",
        //   desc: "治愈式电子木鱼静心房，敲走烦恼。",
        //   color: [255, 215, 60],
        // },
      ],
      shareMedia: {
        title: "欢迎使用佛印APP", // 如果是文本分析请使用title字段内容填入text
        desc: "为您精心打造的解压神器，每天都能元气十足~",
        thumb: `${cdn}assets/foindia.png`,
        image: `${cdn}assets/foindia.png`,
        link: "", // 小程序path字段和link共用
        // url: "https://www.nadu8.com/scheme",
        url: "//a.app.qq.com/o/simple.jsp?pkgname=com.foindia.colpu",
      },
      pray: "愿此元气，让小主精气十足",
      payTypeId: 1, // 支付类型默认选择ID配置支付宝
      payProductId: 1, // 支付产品默认选择ID配置
      musicTypes: [
        {
          type: "cicada",
          label: "蝉曲",
        },
        {
          type: "motet",
          label: "经文",
        },
      ],
      fonts: [
        {
          fontFamily: "kuaile",
          url: `${cdn}assets/fonts/kuaile.ttf`,
        },
      ],
      share_welfare: true,
      footer: `Copyright©${new Date().getFullYear()} 印点信息 版权所有\n蜀ICP备20000300号-3A`,
      tripartTypes: { wechat: 1, qq: 2, apple: 3 },
    };
    if (encrypt === "true" || encrypt === "1") {
      ctx.respondEncrypt(json);
    } else {
      ctx.respond(json);
    }
  }

  async update(ctx) {
    const { config } = ctx;
    const { cdn } = config;
    const json = {
      version: "1.0.9",
      mandatory: true,
      updateContent: [
        "1、对各产品模块进行了产品优化；",
        "2、添加自定义咒语功能；",
        "3、添加背景选择和自定义上传功能；",
        "4、优化首页操作方式，添加tab切换模式，添加显隐菜单操作；",
        "5、对日签页面进行改造成为签到功能；",
        "6、取消地图定位功能；",
        "7、对用户操作咒语日志进行单独计数，并进行数据库同步；",
        "8、其它页面及UI优化；",
      ],
      iosAddress: "https://apps.apple.com/cn/app/tasktodo/id1498326734",
      androidAddress: `${cdn}apk/foindia1.0.9.apk`,
    };
    ctx.respond(json);
  }

  async push(ctx) {
    console.log(ctx.request.body);
    ctx.respond("ok");
  }
  async umengPush(ctx) {
    ctx.respond("ok");
  }

  async getIPLocation(ctx) {
    let { ip = "" } = ctx.params;
    if (!ip) {
      ip = ctx.request.header["x-forwarded-for"] || ctx.request.ip;
      if (ip && ip.includes(",")) {
        // 如果存在逗号，取第一个IP地址，通常是代理的IP
        ip = ip.split(",")[0].trim();
      }
    }
    if (ip.indexOf("::") > -1) {
      return ctx.respond({
        country: "中国",
        countryCode: "CN",
        region: "BJ",
        regionName: "北京市",
        city: "北京",
        zip: "",
        lat: 0.0,
        lon: 0.0,
        timezone: "Asia/Shanghai",
        isp: "Chinanet",
        org: "Chinanet SC",
        as: "AS4134 CHINANET-BACKBONE",
        ip: "127.0.0.1",
      });
    }
    let res = {};
    try {
      res = await ctx.$http(`http://ip-api.com/json/${ip}?lang=zh-CN`);
      // res = await ctx.$http(`https://restapi.amap.com/v3/ip?key=68e70afcc11ca919e65c4095f2a3a2a6&ip=${ip}`);
    } catch (err) {
      ctx.throw(err);
    }
    res.ip = res.query;
    delete res.status;
    delete res.query;
    ctx.respond(res);
  }
};
